#include <QApplication>
#include <QStandardItemModel>
#include <QTableView>

#include "multiheader.h"
#include <QTreeView>

#include "RbWindow.h"

int main(int argc, char* argv[]) {
    QApplication app(argc, argv);
//     app.setStyleSheet(R"(
//
//     QHeaderView::section
//     {
//         background: #FBFBFB;
//         border: 1px solid #000000;
//     }
//
//    QTreeView::item:selected
//    {
//        background-color: #0078D4;
//        color: white;
//    }
// )");


    auto* treeView=new QTreeView;
    treeView->setSortingEnabled(true);
    auto pModel = new QStandardItemModel(treeView);
    treeView->setModel(pModel);

    auto pHeader = new MutilHeader(Qt::Orientation::Horizontal, treeView);
    treeView->setHeader(pHeader);
    QList<QStringList> headers;
 
    /*********************注意两个QStringList个数必须相同************************/
    // 第一行
    QStringList headerList;
    headerList << "第一列" << "第二列" << "" << "" << "第五列" << "";

    // 第二行
    QStringList headerList2;
    headerList2 << "第1列" << "第二列" << "第三列" << "第四列" << "第五列" << "第六列";

    headers << headerList << headerList2;
    pHeader->setLabels(headers);
    /************************************************************************/

    treeView->header()->setSectionResizeMode(QHeaderView::Interactive);
    treeView->header()->setDefaultSectionSize(56);
 
    // 合并列头
    // pHeader->setSpanRange(SpanRange{0, 0, 1, 0});
    pHeader->setSpanRange(SpanRange{0, 1, 0, 3});
    pHeader->setSpanRange(SpanRange{0, 4, 0, 5});
 
    // 插入6列，
    // treeView->setColumnWidth(0, 100);
    // treeView->setColumnWidth(1, 100);
    // treeView->setColumnWidth(2, 100);
    // treeView->setColumnWidth(3, 100);
    // treeView->setColumnWidth(4, 100);
    // treeView->setColumnWidth(5, 100);
    // pModel->insertColumns(0, 6);
    // pModel->insertRows(0, 5);

    for (int row = 0; row < 10; ++row) {
        QList<QStandardItem*> items;
        for (int col = 0; col < 6; ++col) {
            QStandardItem* item = new QStandardItem(QString("行%1-列%2").arg(row + 1).arg(col + 1));
            items.append(item);
        }
        pModel->insertRow(row, items);
    }
    // treeView->setStyleSheet("QTreeView { gridline-color: black; }");
    treeView->setSelectionBehavior(QAbstractItemView::SelectRows);
    treeView->setSelectionMode(QAbstractItemView::SingleSelection);
    treeView->show();

    QTableView table;
    RbWindow window;
    window.resize(600, 300);
    window.show();

    return app.exec();
}
